list_of = [
    ['00','01','02','03','04'],
    ['10','11','12','13','14'],
    ['20','21','22','23','24']
]

class Vector2:
    def __init__(self, x, y):
      self.x = x
      self.y = y

    # 向左,表示左边方向，x不变，y变
    @staticmethod
    def left():
        return Vector2(0, -1)
    # 向右,表示右边方向
    @staticmethod
    def rigft():
        return Vector2(0, 1)
    
    # 向上
    @staticmethod
    def set_up():
        return Vector2(-1, 0)
    # 向下
    @staticmethod
    def set_dow():
        return Vector2(1, 0)
    
    # 在二维列表中获取指定位置，指定方向，指定数量的元素。
    # 例如： list_of中的 "10" 右边 3个 全获取到
    # target 那个列表， vect_pos那个位置， vect_dir那个方向，取几个元素
    @staticmethod
    def get_list(target: list, vect_pos, vect_dir, count):
        """
        在二维列表中获取指定位置，指定方向，指定数量的元素。

        :param target: [那个列表]
        :type target: [list]
        :param vect_pos: [那个位置，这个位置应是你在类中定义的数据成员，来反映位置信息]
        :param vect_dir: [那个方向, 这个方向应是你定义类的静态方法]
        :param count: [取几个元素]
        :return: [返回一个列表，装的是取来的元素]
        """
        list_cunt = []
        for i in range(count):
            vect_pos.x += vect_dir.x
            vect_pos.y += vect_dir.y
            el = target[vect_pos.x][vect_pos.y]
            list_cunt.append(el)
        return list_cunt

ls = Vector2.get_list(list_of, Vector2(2,2), Vector2.set_up(), 2)
print(ls)

class Enemy():
    def __init__(self, name, blood, atk, defense):
        """
        :param name: [名字]
        :param blood: [血量]
        :param atk: [攻击力]
        :param defense: [防御]
        """
        self.name = name
        self.blood = blood # 血量
        self.atk = atk # 攻击力
        self.defense = defense # 防御
      
    # 行为成员
    def print_info(self):
        print(f"敌人{self.name},攻击力为：{self.atk}, 血量为：{self.blood}, 防御为：{self.defense}")
          
li = Enemy("泰克", 100, 100, 20)
li.print_info()
         
